package model

import "choujiang/common/db"

type Goods struct {
	Id           int64  `xorm:"INT(11) not null pk autoincr" json:"id"`
	Title        string `xorm:"VARCHAR(100) not null" json:"title"`
	Status       int64  `xorm:"INT(11) not null" json:"status"`
	Desc         string `xorm:"VARCHAR(255) not null" json:"desc"`
	Pictures     string `xorm:"VARCHAR(255) not null" json:"pictures"`
	Price        int64  `xorm:"INT(255) not null" json:"price"`
	Order        int64  `xorm:"INT(11) not null" json:"order"`
	Cover        string `xorm:"VARCHAR(255) not null" json:"cover"`
	Banners      string `xorm:"VARCHAR(255) not null" json:"banners"`
	CreatedAt    int64  `xorm:"not null default 0 INT(11) created" json:"created_at"`
	UpdatedAt    int64  `xorm:"not null default 0 INT(11) updated" json:"updated_at"`
	Num          int    `xorm:"INT(11) not null default 0" json:"num"`
	Type         int64  `xorm:"INT(11) not null default 1" json:"type"`
	Balance      int64  `xorm:"INT(11) not null default 0" json:"balance"`
	CouponStatus int64  `xorm:"INT(11) not null default 0" json:"coupon_status"`
	CouponAt     int64  `xorm:"INT(11) not null default 0" json:"coupon_at"`
	LimitPeople  int64  `xorm:"INT(11) not null default 0" json:"limit_people"`
	CurPeople    int64  `xorm:"INT(11) not null default 0" json:"cur_people"`
	MyCoupon     int    `xorm:"-" json:"my_coupon"`
	IsShow       int64  `xorm:"INT(11) not null default 1" json:"is_show"`
}

type GoodsImg struct {
	GoodsId int64  `xorm:"INT(11) not null"`
	Url     string `xorm:"VARCHAR(255) not null"`
}

func GetGoodsById(id int64) *Goods {
	goods := new(Goods)
	has, err := db.MysqlEngine.Where("id=?", id).Get(goods)
	if !has || err != nil {
		return nil
	}
	return goods
}

func (u *Goods) Insert() (*Goods, error) {
	_, err := db.MysqlEngine.InsertOne(u)
	return u, err
}

func (u *Goods) Update() (*Goods, error) {
	_, err := db.MysqlEngine.ID(u.Id).Update(u)
	return u, err
}
